package com.qzsoft.zhjd.materiel.modules.materielitem.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qzsoft.zhjd.materiel.modules.materielitem.dto.MaterielItemBaseListDto;
import com.qzsoft.zhjd.materiel.modules.materielitem.dto.MaterielItemBaseSaveDto;
import com.qzsoft.zhjd.materiel.modules.materielitem.dto.MaterielItemBaseSelectDto;
import com.qzsoft.zhjd.materiel.modules.materielitem.entity.MaterielItemBaseEntity;

/**
 * @ClassName MaterielItemBaseService
 * @Description 养护基地材料字典业务接口
 * @author linhuawei
 * @since 2022-03-30
 */
public interface MaterielItemBaseService extends IService<MaterielItemBaseEntity> {
    
    /**
     * @Title page
     * @Description 获取基地材料分页列表
     * @param params 查询条件
     * @return 基地材料分页列表
     */
    public IPage<MaterielItemBaseListDto> page(Map<String, Object> params);

    /**
     * @Title getUnbind
     * @Description 获取未绑定材料列表
     * @param baseCode 基地编号
     * @return 未绑定材料列表
     */
    public List<MaterielItemBaseSelectDto> getUnbind(String baseCode);

    /**
     * @Title getBind
     * @Description 获取绑定材料列表
     * @param baseCode 基地编号
     * @return 绑定材料列表
     */
    public List<MaterielItemBaseSelectDto> getBind(String baseCode);
    
    /**
     * @Title getByBaseCode
     * @Description 根据基地编号获取字典数据
     * @param baseCode 基地编号
     * @return 字典数据
     */
    public List<MaterielItemBaseEntity> getByBaseCode(String baseCode);


    /**
     * @Title saveReturnErrors
     * @Description 绑定材料字典
     * @param dto 材料字典信息
     * @return 添加失败的主键列表
     */
    public List<String> saveReturnErrors(MaterielItemBaseSaveDto dto);

    /**
     * @Title deleteByMaterielItemId
     * @Description 根据材料主键删除养护基地材料
     * @param materielItemId 材料主键
     */
    public void deleteByMaterielItemId(String materielItemId);

}
